Identifying Cross-Cutting Concerns from History
نویسندگان
چکیده
As object-oriented programs evolve, they may suffer from the “tyranny of dominant decomposition”: The program can be modularised only one way at a time, leaving cross-cutting concerns scattered across many modules and tangled with one another. Aspectoriented programming (AOP) tries to remedy this by encapsulating these concerns into aspects. Aspect mining identifies such cross-cutting concerns and thus helps to migrate existing software to an aspectoriented program. Aspect mining of large software system like Eclipse is a problem: dynamic approaches depend on test cases and have trouble covering all code and thus detecting all cross-cutting functionality. And static approaches simply cannot analyse systems this big unless they work incrementally. We offer a new approach based on the observation that cross-cutting functionality does not exist from the beginning. Instead, it is introduced over time. More specifically, we speculate that considerable cross-cutting functionality is introduced within short periods of time. To find these, we analyse code additions from development tasks as they are recorded in a software repository like CVS. Since we analyse one task at a time, our approach is independent of a project’s total size. This enables us to report crosscutting functionality for Eclipse, a 1.6MLOC Java program. In this paper we sketch the basic idea of history-based aspect mining and some initial results.
منابع مشابه
Beiträge des 8. Workshops 'Software Reengineering' (WSR 2006)
Silvia Breu (University of Cambridge) Thomas Zimmermann (Saarland University) Identifying Cross-Cutting Concerns from History. Silvia Breu (University of Cambridge) Thomas Zimmermann, Christian Lindig (Saarland University) Mining Aspects from CVS Transactions using Concept Analysis. Valentin Dallmeier, Andrzej Wasylkowski Nicolas Bettenburg (Saarland University) Identifying Inspectors to Mine M...
متن کاملMining and tracking in evolving software
Every large program contains a small fraction of functionality that resists clean encapsulation. Code for, e.g., debugging or locking is hard to keep hidden using objectoriented mechanisms alone. This problem gave rise to aspect-oriented programming: such cross-cutting functionality is factored out into so-called aspects and these are woven back into mainline code during compilation. However, f...
متن کاملHierarchical Clustering for Identifying Crosscutting Concerns in Object Oriented Software Systems
Crosscutting concerns are parts of a program that affect or crosscut other concerns. Usually these concerns cannot be cleanly decomposed from the rest of the system, and they are mixed with many core concerns from the system leading to code scattering and code tangling, and, also, to systems that are hard to explore and understand. Identifying crosscutting concerns automatically improves both t...
متن کاملA Hybrid Approach to Separation of Concerns: The Story of SADES
A number of approaches have been proposed to achieve separation of concerns. Although all these approaches form suitable candidates for separating cross-cutting concerns in a system, one approach can be more suitable for implementing certain types of concerns as compared to the others. This paper proposes a hybrid approach to separation of concerns. The approach is based on using the most suita...
متن کاملA Partitional Clustering Algorithm for Crosscutting Concerns Identification
Identifying crosscutting concerns is an important issue in the maintenance of software systems. It aims at refactoring the existing systems to use aspect oriented programming, in order to make them easier to maintain and to evolve. In this paper we present a new partitional clustering algorithm for identifying crosscutting concerns in existing software systems. We experimentally evaluate our al...
متن کاملذخیره در منابع من
با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید
عنوان ژورنال:
- Softwaretechnik-Trends
دوره 26 شماره
صفحات -
تاریخ انتشار 2006